Apache POI লাইব্রেরি ব্যবহার করে আপনি PowerPoint (.ppt বা .pptx) ফাইলগুলি লোড, পড়া, এবং সেগুলোর কন্টেন্ট অ্যাক্সেস করতে পারেন। এখানে, আমরা দেখব কিভাবে Apache POI ব্যবহার করে একটি PowerPoint ফাইল লোড করা যায় এবং তার মধ্যে থাকা স্লাইড এবং টেক্সট উপাদানগুলোকে অ্যাক্সেস করা যায়।
Apache POI তে PowerPoint ফাইল লোড করার জন্য, আপনাকে XSLF API ব্যবহার করতে হবে, যা নতুন PPTX ফাইল ফরম্যাটের জন্য ব্যবহৃত হয়। পুরোনো PPT ফাইল ফরম্যাটের জন্য HSLF API ব্যবহৃত হয়।
এখানে আমরা PPTX ফাইলের জন্য XSLF API ব্যবহার করে একটি উদাহরণ দেখাব, যেখানে একটি PowerPoint ফাইল লোড করা হচ্ছে এবং সেখান থেকে স্লাইডের টেক্সট পড়া হচ্ছে।
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTextShape;
import java.io.FileInputStream;
import java.io.IOException;
public class LoadPPTXExample {
public static void main(String[] args) {
try {
// PowerPoint ফাইল লোড করা
FileInputStream fis = new FileInputStream("example.pptx");
XMLSlideShow ppt = new XMLSlideShow(fis);
// স্লাইডগুলির মধ্যে প্রবাহিত হওয়া
for (XSLFSlide slide : ppt.getSlides()) {
// স্লাইডে উপস্থিত টেক্সট শেপগুলির মধ্যে প্রবাহিত হওয়া
for (XSLFTextShape shape : slide.getPlaceholders()) {
// টেক্সট পড়া
System.out.println("Text on slide: " + shape.getText());
}
}
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
new XMLSlideShow(fis)
ফাইল ইনপুট স্ট্রিম থেকে PowerPoint ফাইলটি লোড করবে।.getSlides()
মেথড ব্যবহার করে আপনি সমস্ত স্লাইড অ্যাক্সেস করতে পারেন।getText()
মেথডের মাধ্যমে আপনি স্লাইডের টেক্সট অ্যাক্সেস করতে পারেন।এই কোডটি example.pptx ফাইল থেকে সমস্ত স্লাইডের টেক্সট কন্টেন্ট পড়ে এবং কনসোলে প্রিন্ট করবে।
যদি আপনার PPT ফাইল থাকে, তাহলে আপনি HSLF API ব্যবহার করতে পারেন।
import org.apache.poi.hslf.usermodel.HSLFSlideShow;
import org.apache.poi.hslf.usermodel.HSLFSlide;
import org.apache.poi.hslf.usermodel.HSLFTextBox;
import java.io.FileInputStream;
import java.io.IOException;
public class LoadPPTExample {
public static void main(String[] args) {
try {
// PowerPoint ফাইল লোড করা
FileInputStream fis = new FileInputStream("example.ppt");
HSLFSlideShow ppt = new HSLFSlideShow(fis);
// স্লাইডগুলির মধ্যে প্রবাহিত হওয়া
for (HSLFSlide slide : ppt.getSlides()) {
// স্লাইডে উপস্থিত টেক্সট বক্সগুলির মধ্যে প্রবাহিত হওয়া
for (HSLFTextBox textBox : slide.getTextBoxes()) {
// টেক্সট পড়া
System.out.println("Text on slide: " + textBox.getText());
}
}
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
এই কোডটি example.ppt ফাইল থেকে সমস্ত স্লাইডের টেক্সট কন্টেন্ট পড়ে এবং কনসোলে প্রিন্ট করবে।
Apache POI লাইব্রেরি ব্যবহার করে আপনি সহজেই PowerPoint ফাইল লোড করতে পারেন এবং সেখান থেকে স্লাইড, টেক্সট, এবং অন্যান্য উপাদানগুলি অ্যাক্সেস করতে পারেন। আপনি XSLF API ব্যবহার করে .pptx ফাইল এবং HSLF API ব্যবহার করে .ppt ফাইল লোড করতে পারবেন। এই পদ্ধতিগুলি আপনাকে PowerPoint ফাইলের ডেটা প্রক্রিয়া, বিশ্লেষণ বা পরিবর্তন করতে সহায়ক।
Apache POI লাইব্রেরি ব্যবহার করে আপনি বিদ্যমান PowerPoint ফাইল (PPT এবং PPTX) লোড এবং সম্পাদনা করতে পারেন। Apache POI এর HSLF API (PowerPoint 2003, PPT) এবং XSLF API (PowerPoint 2007 এবং পরবর্তী, PPTX) ব্যবহার করা হয়। এই গাইডে আমরা বিদ্যমান PowerPoint ফাইল লোড করার এবং সেগুলির মধ্যে পরিবর্তন করার প্রক্রিয়া দেখাবো।
PowerPoint 2003 ফাইলের জন্য HSLF API ব্যবহার করা হয়। নিচে একটি উদাহরণ দেওয়া হলো যেখানে বিদ্যমান PPT ফাইল লোড করা হচ্ছে।
import org.apache.poi.hslf.usermodel.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class PowerPointReadExample {
public static void main(String[] args) throws IOException {
// বিদ্যমান PowerPoint ফাইল লোড করা
FileInputStream inputStream = new FileInputStream("existing.ppt");
HSLFSlideShow ppt = new HSLFSlideShow(inputStream);
// স্লাইডগুলি আছেঃ স্লাইড সংখ্যা জানাতে
HSLFSlide[] slides = ppt.getSlides();
System.out.println("Total Slides: " + slides.length);
// প্রথম স্লাইডের টেক্সট পরিবর্তন করা
HSLFSlide slide = slides[0];
HSLFTextBox title = (HSLFTextBox) slide.getShapes().get(0);
title.setText("Updated Title!");
// ফাইল সংরক্ষণ করা
FileOutputStream out = new FileOutputStream("updated.ppt");
ppt.write(out);
out.close();
System.out.println("PowerPoint ফাইল সম্পাদিত হয়েছে!");
}
}
এই কোডটি বিদ্যমান PPT ফাইলটি লোড করবে, প্রথম স্লাইডের টেক্সট পরিবর্তন করবে এবং নতুন ফাইল হিসেবে সংরক্ষণ করবে।
PowerPoint 2007 এবং পরবর্তী সংস্করণের জন্য XSLF API ব্যবহার করা হয়। নিচে একটি উদাহরণ দেওয়া হলো, যেখানে বিদ্যমান PPTX ফাইল লোড করা হচ্ছে।
import org.apache.poi.xslf.usermodel.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class PowerPointReadExample {
public static void main(String[] args) throws IOException {
// বিদ্যমান PowerPoint ফাইল লোড করা
FileInputStream inputStream = new FileInputStream("existing.pptx");
XMLSlideShow ppt = new XMLSlideShow(inputStream);
// স্লাইডগুলি আছেঃ স্লাইড সংখ্যা জানাতে
XSLFSlide[] slides = ppt.getSlides();
System.out.println("Total Slides: " + slides.length);
// প্রথম স্লাইডের টেক্সট পরিবর্তন করা
XSLFSlide slide = slides[0];
XSLFTextBox title = (XSLFTextBox) slide.getShapes().get(0);
title.setText("Updated Title!");
// ফাইল সংরক্ষণ করা
FileOutputStream out = new FileOutputStream("updated.pptx");
ppt.write(out);
out.close();
System.out.println("PowerPoint ফাইল সম্পাদিত হয়েছে!");
}
}
এই কোডটি PPTX ফাইলটি লোড করবে, প্রথম স্লাইডের টেক্সট পরিবর্তন করবে এবং নতুন ফাইল হিসেবে সংরক্ষণ করবে।
যখন আপনি Apache POI ব্যবহার করে একটি PowerPoint ফাইল লোড করেন, তখন আপনি ফাইলের বিভিন্ন তথ্য যেমন স্লাইডের সংখ্যা, স্লাইডের শিরোনাম, কনটেন্ট ইত্যাদি পড়তে পারেন।
import org.apache.poi.xslf.usermodel.*;
import java.io.FileInputStream;
import java.io.IOException;
public class PowerPointReadTitle {
public static void main(String[] args) throws IOException {
// বিদ্যমান PowerPoint ফাইল লোড করা
FileInputStream inputStream = new FileInputStream("existing.pptx");
XMLSlideShow ppt = new XMLSlideShow(inputStream);
// স্লাইডগুলি আছেঃ স্লাইড সংখ্যা জানাতে
XSLFSlide[] slides = ppt.getSlides();
// স্লাইডের টাইটেল এবং কনটেন্ট পড়া
for (int i = 0; i < slides.length; i++) {
XSLFSlide slide = slides[i];
System.out.println("Slide " + (i + 1) + ":");
// স্লাইডের টেক্সট শেপস খোঁজা
for (XSLFShape shape : slide.getShapes()) {
if (shape instanceof XSLFTextBox) {
XSLFTextBox textBox = (XSLFTextBox) shape;
System.out.println("Text: " + textBox.getText());
}
}
}
inputStream.close();
}
}
এই কোডটি PowerPoint ফাইলের প্রতিটি স্লাইডের টেক্সট শেপগুলি পড়বে এবং স্লাইডের টেক্সট কনটেন্ট প্রদর্শন করবে।
Apache POI লাইব্রেরি ব্যবহার করে আপনি সহজেই বিদ্যমান PowerPoint ফাইল (PPT/PPTX) লোড, সম্পাদনা এবং তথ্য পড়তে পারেন। HSLF API ব্যবহার করে PowerPoint 2003 ফাইল (PPT) এবং XSLF API ব্যবহার করে PowerPoint 2007 এবং পরবর্তী সংস্করণের ফাইল (PPTX) লোড করা হয়। আপনি ফাইলের টেক্সট, শেপ, ছবি, টেবিল ইত্যাদি পড়তে এবং সম্পাদনা করতে পারেন।
এটি খুবই উপকারী যখন আপনাকে একটি বিদ্যমান PowerPoint ফাইলের কন্টেন্ট পরিবর্তন করতে হয় বা বিশ্লেষণ করতে হয়।
যদি আপনার আরও কোনও প্রশ্ন থাকে বা নির্দিষ্ট কিছু জানতে চান, আমাকে জানাতে পারেন!
অ্যাপাচি পিওআই (Apache POI) একটি ওপেন সোর্স লাইব্রেরি যা Java ব্যবহারকারীদের Microsoft Office ফাইল ফরম্যাটে কাজ করার সুযোগ দেয়। এর মধ্যে একটি বিশেষ অংশ PowerPoint (PPT/PPTX) ফাইল নিয়ে কাজ করার জন্য XSLF (XML Slide Layout Format) API। এই API ব্যবহার করে আপনি PowerPoint প্রেজেন্টেশনের স্লাইড এবং তাদের কনটেন্ট সহজে অ্যাক্সেস করতে পারবেন।
এখানে আমরা আলোচনা করবো কিভাবে অ্যাপাচি পিওআই ব্যবহার করে PowerPoint ফাইলের স্লাইড এবং তাদের কনটেন্ট পড়া এবং সম্পাদনা করা যায়।
PowerPoint ফাইল (.pptx) থেকে স্লাইড এবং তাদের কনটেন্ট (যেমন টেক্সট, ইমেজ, টেবিল ইত্যাদি) অ্যাক্সেস করতে XSLF API ব্যবহার করা হয়।
PowerPoint ফাইলের সাথে কাজ করতে আপনাকে poi-ooxml
ডিপেনডেন্সি আপনার pom.xml
(Maven) অথবা build.gradle
(Gradle) ফাইলে যুক্ত করতে হবে।
Maven Dependency:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version> <!-- সর্বশেষ সংস্করণ -->
</dependency>
Gradle Dependency:
dependencies {
implementation 'org.apache.poi:poi-ooxml:5.2.3' // সর্বশেষ সংস্করণ
}
এখন, আসুন একটি PowerPoint (.pptx) ফাইল থেকে স্লাইড এবং তাদের কনটেন্ট কিভাবে পড়া যায় তা দেখি।
import org.apache.poi.xslf.usermodel.*;
import java.io.FileInputStream;
import java.io.IOException;
public class PowerPointReader {
public static void main(String[] args) throws IOException {
// PowerPoint ফাইল লোড করুন
FileInputStream fis = new FileInputStream("example.pptx");
XMLSlideShow ppt = new XMLSlideShow(fis);
// স্লাইড গুলোর মাধ্যমে লুপ চালান
for (XSLFSlide slide : ppt.getSlides()) {
System.out.println("Slide Title: " + slide.getTitle()); // স্লাইডের শিরোনাম প্রিন্ট করুন
// স্লাইডের মধ্যে টেক্সট কনটেন্ট প্রিন্ট করুন
for (XSLFShape shape : slide.getShapes()) {
if (shape instanceof XSLFTextShape) {
XSLFTextShape textShape = (XSLFTextShape) shape;
System.out.println("Text: " + textShape.getText()); // টেক্সট প্রিন্ট করুন
}
}
}
ppt.close();
}
}
ppt.getSlides()
মেথডের মাধ্যমে সব স্লাইড লোড করা হয়।XSLFTextShape
ক্লাসের সাহায্যে স্লাইডের টেক্সট কনটেন্ট অ্যাক্সেস করা হয়।PowerPoint ফাইলের স্লাইডে শুধুমাত্র টেক্সট নয়, ইমেজ, টেবিল বা গ্রাফিক্সও থাকতে পারে। এগুলিও অ্যাক্সেস করা সম্ভব।
for (XSLFShape shape : slide.getShapes()) {
if (shape instanceof XSLFPictureData) {
XSLFPictureData pictureData = (XSLFPictureData) shape;
byte[] imageData = pictureData.getData(); // ইমেজ ডেটা
System.out.println("Image found with size: " + imageData.length);
}
}
for (XSLFShape shape : slide.getShapes()) {
if (shape instanceof XSLFTable) {
XSLFTable table = (XSLFTable) shape;
for (int i = 0; i < table.getNumberOfRows(); i++) {
XSLFTableRow row = table.getRow(i);
for (int j = 0; j < row.getCells().size(); j++) {
XSLFTableCell cell = row.getCell(j);
System.out.print("Cell[" + i + "][" + j + "]: " + cell.getText() + "\t");
}
System.out.println();
}
}
}
আপনি চাইলে PowerPoint ফাইলের স্লাইডে কনটেন্ট যোগ বা পরিবর্তন করতে পারেন। নিচে একটি উদাহরণ দেয়া হলো যেখানে টেক্সট পরিবর্তন করা হচ্ছে:
import org.apache.poi.xslf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class PowerPointWriter {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("example.pptx");
XMLSlideShow ppt = new XMLSlideShow(fis);
// প্রথম স্লাইডে টেক্সট পরিবর্তন করা
XSLFSlide slide = ppt.getSlides().get(0);
for (XSLFShape shape : slide.getShapes()) {
if (shape instanceof XSLFTextShape) {
XSLFTextShape textShape = (XSLFTextShape) shape;
textShape.setText("Updated Text: New Content");
}
}
// নতুন PowerPoint ফাইল তৈরি করা
FileOutputStream out = new FileOutputStream("updated_example.pptx");
ppt.write(out);
out.close();
ppt.close();
}
}
এখানে XSLFTextShape.setText()
মেথড ব্যবহার করে স্লাইডের টেক্সট পরিবর্তন করা হচ্ছে।
অ্যাপাচি পিওআই (Apache POI) XSLF API ব্যবহার করে আপনি PowerPoint ফাইলের স্লাইড এবং তাদের কনটেন্ট (যেমন টেক্সট, ইমেজ, টেবিল) অ্যাক্সেস এবং সম্পাদনা করতে পারেন। XMLSlideShow
ক্লাস এবং XSLFSlide
থেকে XSLFShape
শ্রেণি ব্যবহার করে আপনি ফাইলের সব কনটেন্টকে পর্যবেক্ষণ এবং সম্পাদনা করতে সক্ষম হন। এটি বিশেষভাবে পিপিটি ফাইলের স্বয়ংক্রিয় ডেটা এক্সট্র্যাকশন এবং কাস্টমাইজেশন করার জন্য উপকারী।
অ্যাপাচি পিওআই (Apache POI) আপনাকে PowerPoint ফাইলের metadata পড়ার জন্য সক্ষম করে, যা PowerPoint ডকুমেন্টের প্রাথমিক তথ্য যেমন লেখক, শিরোনাম, সৃষ্টির তারিখ, পরিবর্তন তারিখ ইত্যাদি সংগ্রহ করতে সহায়তা করে। এই তথ্য সাধারণত ফাইলের প্রপার্টি অংশে সংরক্ষিত থাকে এবং এটি .ppt
(HSLF) এবং .pptx
(XSLF) উভয় ফরম্যাটেই পাওয়া যায়।
NiFi, Java বা অন্য কোনও Java ভিত্তিক টুল ব্যবহার করে POI এর সাহায্যে আপনি PowerPoint ফাইলের মেটাডেটা পড়তে পারেন। এখানে দেখানো হবে কিভাবে Apache POI ব্যবহার করে PowerPoint ফাইলের মেটাডেটা এক্সট্র্যাক্ট করা যায়।
প্রথমত, আপনাকে Apache POI Maven ডিপেনডেন্সি আপনার প্রোজেক্টে যোগ করতে হবে। .pptx
ফাইলের জন্য poi-ooxml এবং .ppt
ফাইলের জন্য poi লাইব্রেরি ব্যবহৃত হবে।
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version> <!-- NiFi ব্যবহারকারীর নির্দিষ্ট ভার্সন চেক করুন -->
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.3</version> <!-- NiFi ব্যবহারকারীর নির্দিষ্ট ভার্সন চেক করুন -->
</dependency>
XSLF ব্যবহার করে .pptx
ফাইলের metadata পড়তে নিচের কোডটি ব্যবহার করতে পারেন:
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.sl.usermodel.SlideShow;
import org.apache.poi.ooxml.POIXMLProperties;
import java.io.FileInputStream;
import java.io.IOException;
public class PowerPointMetadataXSLF {
public static void main(String[] args) throws IOException {
// .pptx ফাইল খোলার জন্য ইনপুট স্ট্রিম
FileInputStream fis = new FileInputStream("example_presentation.pptx");
// XMLSlideShow অবজেক্ট তৈরি করা
XMLSlideShow ppt = new XMLSlideShow(fis);
// মেটাডেটা এক্সট্র্যাক্ট করা
POIXMLProperties props = ppt.getProperties();
POIXMLProperties.CoreProperties coreProps = props.getCoreProperties();
// মেটাডেটা প্রিন্ট করা
System.out.println("Title: " + coreProps.getTitle());
System.out.println("Creator: " + coreProps.getCreator());
System.out.println("Subject: " + coreProps.getSubject());
System.out.println("Keywords: " + coreProps.getKeywords());
System.out.println("Last Modified By: " + coreProps.getLastModifiedBy());
System.out.println("Created Date: " + coreProps.getCreated());
System.out.println("Modified Date: " + coreProps.getModified());
fis.close();
}
}
এটি .pptx
ফাইলের মূল মেটাডেটা যেমন শিরোনাম, লেখক, বিষয়, কীওয়ার্ড, তৈরি এবং পরিবর্তিত তারিখ ইত্যাদি এক্সট্র্যাক্ট করবে।
HSLF ব্যবহার করে .ppt
ফাইলের metadata পড়ার জন্য কোডটি কিছুটা আলাদা হবে, কারণ এটি পুরনো .ppt
ফাইল ফরম্যাটের জন্য ব্যবহৃত হয়।
import org.apache.poi.hslf.usermodel.HSLFSlideShow;
import org.apache.poi.hslf.usermodel.HSLFProperties;
import java.io.FileInputStream;
import java.io.IOException;
public class PowerPointMetadataHSLF {
public static void main(String[] args) throws IOException {
// .ppt ফাইল খোলার জন্য ইনপুট স্ট্রিম
FileInputStream fis = new FileInputStream("example_presentation.ppt");
// HSLFSlideShow অবজেক্ট তৈরি করা
HSLFSlideShow ppt = new HSLFSlideShow(fis);
// মেটাডেটা এক্সট্র্যাক্ট করা
HSLFProperties props = ppt.getProperties();
HSLFProperties.CoreProperties coreProps = props.getCoreProperties();
// মেটাডেটা প্রিন্ট করা
System.out.println("Title: " + coreProps.getTitle());
System.out.println("Creator: " + coreProps.getCreator());
System.out.println("Subject: " + coreProps.getSubject());
System.out.println("Keywords: " + coreProps.getKeywords());
System.out.println("Last Modified By: " + coreProps.getLastModifiedBy());
System.out.println("Created Date: " + coreProps.getCreated());
System.out.println("Modified Date: " + coreProps.getModified());
fis.close();
}
}
এটি .ppt
ফাইলের জন্যও একই ধরনের মেটাডেটা এক্সট্র্যাক্ট করবে।
PowerPoint ফাইলের মেটাডেটা সাধারণত নিচের তথ্য ধারণ করে:
এই মেটাডেটাগুলি সাধারণত ফাইলটির বৈশিষ্ট্যভুক্ত ডাটা, যা ফাইলের সাথে সংযুক্ত থাকে এবং অডিটিং, ফাইল ট্র্যাকিং এবং ফাইল ব্যবস্থাপনা প্রক্রিয়ায় সহায়ক হতে পারে।
অ্যাপাচি পিওআই (Apache POI) PowerPoint ফাইলের মেটাডেটা পড়তে খুবই সহায়ক। XSLF (নতুন .pptx
ফাইল) এবং HSLF (পুরানো .ppt
ফাইল) মডিউলগুলি ব্যবহার করে আপনি PowerPoint ফাইলের মেটাডেটা যেমন শিরোনাম, লেখক, তৈরি এবং পরিবর্তিত তারিখ, কীওয়ার্ড ইত্যাদি সহজে এক্সট্র্যাক্ট করতে পারেন। এই মেটাডেটা পড়া এবং ব্যবহার করা ফাইল ব্যবস্থাপনা এবং অডিটিংয়ের জন্য খুবই গুরুত্বপূর্ণ।
common.read_more